#!/bin/sh

APP_MAIN=webdav-aliyundriver
APP_JAR_NAME=webdav-aliyundriver.jar
APP_PATH=/Users/yangwu3/Downloads/aliyun-driver
# JVM参数
JAVA_OPTS="-Dname=$APP_MAIN -Duser.timezone=Asia/Shanghai -Xms512m -Xmx2048m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps  -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"

cd $APP_PATH

tradePortalPID=0

start() {
  getTradeProtalPID

  echo "================================================================================================================"
  if [ $tradePortalPID -ne 0 ]; then
    echo "$APP_MAIN already started(PID=$tradePortalPID)"
    echo "================================================================================================================"
  else
    echo "Starting $APP_MAIN : nohup java -jar $APP_JAR_NAME >/dev/null 2>&1 & "
    sh -c "nohup java -jar $APP_JAR_NAME >/dev/null 2>&1 & "
    #java -Xms2048m -Xmx2048m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -Dapp.home=/www/sync-api -jar sync-api.jar --spring.config.location=file:config/application-prod.properties,file:config/application.properties,
    getTradeProtalPID
    if [ $tradePortalPID -ne 0 ]; then
      echo "(PID=$tradePortalPID)...[Success]"
      echo "================================================================================================================"
    else
      echo "[Failed]"
      echo "================================================================================================================"
    fi
  fi
}

stop() {
  getTradeProtalPID
  echo "================================================================================================================"
  if [ $tradePortalPID -ne 0 ]; then
    echo "Stopping $APP_MAIN(PID=$tradePortalPID)..."
    kill -15 $tradePortalPID
    sleep 2
    getTradeProtalPID
    if [ $tradePortalPID -ne 0 ]; then
      kill -9 $tradePortalPID
    fi
    if [ $? -eq 0 ]; then
      echo "[Success]"
      echo "================================================================================================================"
    else
      echo "[Failed]"
      echo "================================================================================================================"
    fi

  else
    echo "$APP_MAIN is not running"
    echo "================================================================================================================"
  fi
}

status() {
  getTradeProtalPID
  if [ $tradePortalPID -ne 0 ]; then
    echo "$APP_MAIN already started(PID=$tradePortalPID)"
    echo "================================================================================================================"
  else
    echo "$APP_MAIN is not running"
    echo "================================================================================================================"
  fi
}

getTradeProtalPID() {
  javaps=$(ps -ef | grep $APP_JAR_NAME | grep -v grep)
  if [ -n "$javaps" ]; then
    tradePortalPID=$(echo $javaps | awk '{print $2}')
  else
    tradePortalPID=0
  fi
}

case "$1" in
start)
  {
    start
  }
  ;;
stop)
  {
    stop
  }
  ;;
restart)
  {
    stop
    start
  }
  ;;
status)
  status
  ;;
*)
  {
    echo -e "\nUsage: $0 [ start | stop | restart | status]"
    echo ""
  }
  ;;
esac

exit 0
